feat: TeleportToRequest.realm — a teleport can name the realm its parcel is in - #477
feat: TeleportToRequest.realm — a teleport can name the realm its parcel is in#477robtfm wants to merge 2 commits into
Conversation
…cel is in Parcel coordinates only address one realm's grid. A client feature that offers "a place" (a Places listing, a map pin) has a realm and a parcel, and until now had to fire changeRealm and teleportTo separately and guess at their interleaving — the teleport lands on the realm being left. This lets the request carry the realm: the client changes realm (a full reconnect, as for ChangeRealm) and then lands on the parcel. Omitted, nothing changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 4a844e9)
Test this pull request
|
…ealm A teleport that names a realm and no parcel lands on that realm's default spawn — exactly what ChangeRealm does — so a realm change is now just a TeleportTo. ChangeRealm stays for existing scenes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 882d4ee)
19775f5 to
c67abe8
Compare
|
On the red "Validate compatibility with main branch" check: it flags So against main, which has neither field, the whole change is additive:
The flag itself is a tooling artifact of the pinned buf version. With the repo's own
Newer buf recognises the synthetic oneof of a proto3 |
What
TeleportToRequestgainsoptional string realm = 2: the realm the parcel belongs to (a world name such asfoo.dcl.eth, or a realm url). When set, the client changes realm, a full reconnect as forChangeRealm, even to the realm the player is already in, and then lands on the parcel there. Omitted, the request means what it always did.Why
Parcel coordinates only address one realm's grid. A client feature that offers "a place" (a Places listing, a map pin) has a realm and a parcel, and today has to fire
changeRealmandteleportToas two independent requests.changeRealmresolves as soon as the change is accepted, not when the new realm is live, so a teleport issued after it resolves against the realm being left. From inside a World, jumping into a Genesis City place teleports to those coordinates within the World.Carrying the realm on the teleport lets the client sequence the two correctly: change realm, then land on the parcel once the new realm is live.
Cherry-picked from
experimental-bevy, where bevy-explorer implements it. Additive; clients that ignore the field behave as before.